UF77LIBS = ${TDFLIB} ${PVILIB}
include ${SEPINC}/SEP.top
#UTUBEFLAGS = -geom 1000x800
INVRAS=y
#RESULTSER = msiter mshole
RESULTSER = butsyn zzt umm
RESULTSER = pst

default : tube

# Make the input data

butter1 = Butterworth.x cutoff=.4 ncoef=5 hilo=1.| 
butter2 = Butterworth.x cutoff=.1 ncoef=5 hilo=-1. | 
bscale  = Scale dscale=15 hilo=-1. | Scale dscale=1
butsyn.H ${RESDIR}/butsyn.v : Pow.x Butterworth.x
	Spike n1=50 n2=1 k1=1 >noise.H
	< noise.H ${butter1} ${butter2} ${bscale} > butsyn.H
	< butsyn.H Graph title="Butterworth" out=${RESDIR}/butsyn.v > junk.V

# make the interpolated data

a1      =11
a2      =4
a1      =11
a2      =4
niter	=100
MSKIP   =3
MSKIP   =2

# why not making these into defaults in umm.x and zzt.x
stand = par=umm.p ampflat=.1 wide=.1 ampdip=.1 wavelet=butsyn.H phi=85 roll=0 dip=1 flat=1 noise=0 amprand=.00001 noise=1

strip =strp.x skip=${MSKIP}
window=Window   j2=${MSKIP} f2=1XF

method=<zap.H Msmissa.x msc=j1-${MSKIP}.H niter=${niter} a1=${a1} a2=${a2} 

fourier = Pad n1out=256 n2out=128 > junk1.H ; < junk1.H Rtoc > junk2.H; < junk2.H Ft3d sign1=1 sign2=1 sign3=0 center1=1 center2=1 > junk1.H; < junk1.H Cabs 

log     = Log range=3

mvplot  = Byte Xpclip=100 > junk.H ; < junk.H ${BVPLOT} Ta2vplot titlesz=30 titlefat=1 labelfat=1 labelsz=20 axisfat=1,1,1 > /dev/null 

pst.H :   pst.HH pst.x pst.p 
	<pst.HH pst.x ${stand} > pst.H

zzt.H:   umm.HH zzt.x umm.p butsyn.H
	<umm.HH zzt.x ${stand} > zzt.H 

umm.H:   umm.HH umm.x umm.p
	<umm.HH umm.x ${stand} > umm.H

${RESDIR}/%.v : %.H Msmissa.x j1-${MSKIP}.H strp.x inv.x 
	Zero aa.H
	<   $*.H ${strip}                    >  zap.H
	<  zap.H ${window}                   >  dec.H 
	  ${method}                          >  res.H
	<   $*.H ${fourier}         | ${log} > fsyn.H
	<  dec.H ${fourier}         | ${log} > fdec.H
	<  res.H ${fourier}         | ${log} > fres.H
	<   aa.H ${fourier} | inv.x | ${log} > fflt.H
	<   $*.H ${mvplot} out=syn.v  title="syn (${ampflat},${ampdip})"
	<  dec.H ${mvplot} out=dec.v  title="dec (${MSKIP})"
	<  res.H ${mvplot} out=res.v  title="res (${niter})"
	<   aa.H ${mvplot} out=flt.v  title="flt (${a1},${a2})"
	< fsyn.H ${mvplot} out=fsyn.v title="log(ft(syn))"
	< fdec.H ${mvplot} out=fdec.v title="log(ft(dec))"
	< fres.H ${mvplot} out=fres.v title="log(ft(res))"
	< fflt.H ${mvplot} out=fflt.v title="log(1/ft(syn))"
	vp_SideBySideAniso  syn.v  dec.v  res.v  flt.v > top.v
	vp_SideBySideAniso fsyn.v fdec.v fres.v fflt.v > bot.v
	vp_OverUnderAniso    top.v bot.v               > ${RESDIR}/$*.v

Msmissa.x: mspef2.o


### Jon's book below ###

#BYTE    = Byte Xpclip=100
TA2VPLOT = Ta2vplot titlesz=15 > /dev/null title=" " wantaxis=0
#BVPLOT = Ta2vplot titlesz=30 titlefat=1 labelfat=1 labelsz=20 axisfat=1,1,1 > /dev/null 


j%.H : j%.HH
	< j$*.HH Dd esize=4 > j$*.H 


SITER = 1
NITER = 30
${RESDIR}/msiter.v : make.x hole.x Msmiss.x j1.H j1-4.H
	Zero  aa.H
	        make.x  n2=20 > make.H
	<make.H hole.x        > hole.H
	<hole.H Msmiss.x msc=j1-4.H niter=${SITER} > mbeg.H; <aa.H Disfil
	<hole.H Msmiss.x msc=j1-4.H niter=${NITER} > mend.H;
							-grep norm mend.H
	<hole.H Msmiss.x msc=j1.H   niter=${SITER} > sbeg.H
	<hole.H Msmiss.x msc=j1.H   niter=${NITER} > send.H;
							-grep norm send.H
	<sbeg.H ${BYTE}|${TA2VPLOT} title=single_scale:_iter=${SITER} out=sbeg.v
	<send.H ${BYTE}|${TA2VPLOT} title=single_scale:_iter=${NITER} out=send.v
	<mbeg.H ${BYTE}|${TA2VPLOT} title=multiscale:___iter=${SITER} out=mbeg.v
	<mend.H ${BYTE}|${TA2VPLOT} title=multiscale:___iter=${NITER} out=mend.v
	vp_SideBySideAniso sbeg.v send.v > single.v
	vp_SideBySideAniso mbeg.v mend.v > multip.v
	vp_OverUnderAniso  single.v multip.v > junk.v
	<junk.v  vppen vpstyle=n txscale=2. >${RESDIR}/msiter.v

SKIP = 3
${RESDIR}/mshole.v : make.x hole.x strp.x Msmiss.x j1-${SKIP}.H
	Zero aa.H
	        make.x  n2=20     > make.H
	<make.H hole.x            > hole.H
	<hole.H strp.x  skip=${SKIP} > strp.H
	<strp.H Msmiss.x msc=j1-${SKIP}.H > gap.H; < aa.H Disfil;
							-grep norm gap.H
	<make.H ${BYTE} | ${TA2VPLOT} title=original out=orig.v
	<strp.H ${BYTE} | ${TA2VPLOT} title=gapped   out=strp.v
	<gap.H  ${BYTE} | ${TA2VPLOT} title=restored out=gap.v
	vp_SideBySideAniso orig.v strp.v gap.v > junk.v
	<junk.v  vppen vpstyle=n txscale=2. >${RESDIR}/mshole.v

test2: testtcai2.x testicaf2.x
	testtcai2.x hello
	testicaf2.x hello

test1: testicaf1.x testtcai1.x
	testicaf1.x hello
	testtcai1.x hello

clean: jclean texclean

include ${SEPINC}/SEP.bottom
